#ifndef MENU_ITEM_H_
#define MENU_ITEM_H_

#include <string>
#include <sstream>

// other types
#include "Description.h"
using namespace std;

struct Menu_Item
{
public:
        // constructors
        Menu_Item (int id, int cat, int rec, string n, double amt, Description s)       //uncomment once you have added the type definition
                : menu_item_id(id), cat_id(cat), recipe_id(rec), menu_item_name(n), price(amt), descr(s) {}

   // utility functions
        /* The following utility functions were written by Eric Heisler, solving problem A3 */
        string display() const {
                string disp = "";
                std::ostringstream s;
                s << menu_item_name << " $" << price;
                //disp = menu_item_name + " $" + ((string)price);
                return s.str();
        };
        int get_cat_id() const {
                return cat_id;
        };
	int get_menu_item_id() const {
		return menu_item_id;
	};
        string get_menu_item_name() const {
                return menu_item_name;
        };
        string get_descr() const {
                return menu_item_name + ": " + descr.display();
        };
        /* End of code written by EMH */
		
		/* MGM B.1 b: START */
		//getter
		int menuItemId() const {return menu_item_id;}
		int recipeID() const {return recipe_id;}
		double getPrice() const {return price;}
		/* MGM B.1 b: END */
		
private:
   //constants
     
   // private data
        int menu_item_id;
        int cat_id;
        int recipe_id;
        string menu_item_name;
        double price;
        Description descr;
   
};


#endif //MENU_ITEM_H_
